home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)t2.d64 / sound effects.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  18KB  |  844 lines

  1. 0 GOSUB 3000:GOTO2000
  2. 1 LIST 0-999 :REM DIR ***********
  3. 2 LIST 2000-2999:REM MENU
  4. 3 LIST 3000-3999:REM DATA
  5. 4 LIST 4000-4999:REM V1 SET UP
  6. 5 LIST 5000-5999:REM V2 SET UP
  7. 6 LIST 6000-6999:REM V3 SET UP
  8. 7 LIST 7000-7999:REM FILTER SET UP
  9. 8 LIST 8000-8999:REM NOTES
  10. 9 LIST 9000-9999:REM COMPUTE DURATION
  11. 10 LIST 10000-10999:REM POKE ALL VOICES
  12. 11 LIST 11000-11999:REM GET KEY
  13. 12 LIST 12000-12999:REM SOUND ALL VOICES
  14. 13 LIST 13000-13999:REM PLAY ALL VOICES
  15. 14 LIST 14000-14999:REM PLAY FILTER
  16. 15 LIST 15000-15999:REM RETREIVE POKES
  17. 16 LIST 16000-16999:REM PRINT PROGRAM
  18. 17 LIST 17000-17999:REM PLAY 1 VOICE
  19. 18 LIST 18000-18999:REM POKE 1 VOICE
  20. 19 LIST 19000-19999:REM MAKE SOUND
  21. 20 LIST 20000-21000:REM MAKE ARRAY
  22. 21 LIST 21000-21999:REM MAKE SOUND
  23. 22 LIST 22000-22999:REM INSTRUCTIONS
  24. 41 LIST 4000-4112
  25. 42 LIST 4113-4621
  26. 43 LIST 4622-4661
  27. 44 LIST 4662-4991
  28. 45 LIST 4992-4999
  29. 51 LIST 5000-5112
  30. 52 LIST 5113-5621
  31. 53 LIST 5622-5661
  32. 54 LIST 5662-5991
  33. 55 LIST 5992-5999
  34. 61 LIST 6000-6112
  35. 62 LIST 6113-6621
  36. 63 LIST 6622-6661
  37. 64 LIST 6662-6991
  38. 65 LIST 6992-6999
  39. 90 LIST 9000-9100
  40. 91 LIST 9100-9200
  41. 92 LIST 9200-9300
  42. 95 LIST 9500-9700
  43. 97 LIST 9700-9800
  44. 100 REM *********************
  45. 102 REM                     *
  46. 104 REM  SOUND EFFECTS 64   *
  47. 106 REM      SID 25         *
  48. 108 REM  A RYDBERG          *
  49. 110 REM  RFD #1 BOX 46C     *
  50. 112 REM  STERLING CT        *
  51. 114 REM       06377         *
  52. 118 REM                     *
  53. 122 REM *********************
  54. 2000 REM *********************** MENU
  55. 2010 PRINT "[147]":PRINT "          MENU"
  56. 2015 PRINT
  57. 2020 PRINT "     1 SET UP VOICE 1"
  58. 2030 PRINT "     2 SET UP VOICE 2  "
  59. 2040 PRINT "     3 SET UP VOICE 3  "
  60. 2050 PRINT "     4 SET UP FILTER"
  61. 2074 PRINT "     5 RETREAVE POKES "
  62. 2076 PRINT "     6 PRINT PROGRAM  "
  63. 2077 PRINT "     7 TEST"
  64. 2078 PRINT "     8 INSTRUCTIONS"
  65. 2079 PRINT "     9 END"
  66. 2080 PRINT
  67. 2085 PRINT
  68. 2090 INPUT"SELECT ITEM";X
  69. 2095 IF X>9 THEN 2000
  70. 2100 ON X GOSUB 4000,5000,6000,7000,15000,16000,21000,22000,2995
  71. 2110 GOTO 2010
  72. 2990 GOTO 2000
  73. 2995 END
  74. 2999 REM
  75. 3000 REM *********************** DATA
  76. 3002 POKE 53281,0 :REM BLACK SCREEN
  77. 3003 PRINT "": REM WHITE LETTERS
  78. 3010 FOR X=54272 TO 54296
  79. 3020 POKE X,0
  80. 3030 NEXT X
  81. 3039 V4=15
  82. 3040 V1=54272
  83. 3050 V2=54279
  84. 3060 V3=54286
  85. 3070 F1=54293
  86. 3080 DIM Z(25)
  87. 3150 K=880
  88. 3998 RETURN
  89. 3999 REM
  90. 4000 REM **************** V 1 SET UP SUB
  91. 4010 PRINT"[147]":PRINT"   VOICE 1 SET UP"
  92. 4015 PRINT
  93. 4020 PRINT" 1,FREQ LO (0-255)   "L1
  94. 4025 PRINT" 2,FREQ HI (0-255)   "H1
  95. 4030 PRINT" 3,PW LO   (0-255)   "P1
  96. 4035 PRINT" 4,PW HI   (0-15)    "Q1"      D="INT((Q1*256+P1)/40.96)"%"
  97. 4040 PRINT" 5,WAVE (N,P,S,T,A)   "W1$
  98. 4045 PRINT" 6,ATTACK  (0-15)    "A1
  99. 4050 PRINT" 7,DECAY   (0-15)    "D1
  100. 4055 PRINT" 8,SUB     (0-15)    "S1
  101. 4060 PRINT" 9,RELEASE (0-15)    "R1
  102. 4065 PRINT" 10,SYNC 1 WITH 3,3<1  (0-1)    "Y1
  103. 4070 PRINT" 11,RING MOD 1 WITH 3  (0-1)    "M1
  104. 4102 PRINT
  105. 4109 PRINT" 12, TEST "
  106. 4110 PRINT" 13, PLAY VOICE 1"
  107. 4111 PRINT" 14, PLAY ALL VOICES "
  108. 4112 PRINT" 15, RETURN TO MAIN MENU"
  109. 4113 X1=1
  110. 4114 GOSUB 9000
  111. 4116 PRINT
  112. 4117 PRINT "    DURATION= "T1+R5" SECONDS"
  113. 4118 PRINT "            FREQ="(.0596*(256*H1+L1))
  114. 4120 GOSUB 18000:GOSUB 19000
  115. 4200 PRINT
  116. 4500 INPUT" NUMBER TO BE CHANGED";X
  117. 4505 IF X>15 THEN 4000
  118. 4506 IF X>8 THEN GOTO 4515
  119. 4510 ON X  GOTO 4610,4620,4630,4640,4650,4660,4670,4680
  120. 4515 X=X-8
  121. 4520 ON X GOTO 4690,4700,4800,4900,4895,4920,4998
  122. 4610 INPUT "L1 (0-255)";L1
  123. 4611 IF L1>255 THEN L1=255
  124. 4612 GOTO 4000
  125. 4620 INPUT "H1 (0-255)";H1
  126. 4621 IF H1>255 THEN H1=255
  127. 4622 GOTO 4000
  128. 4630 INPUT "P1 (0-255)";P1
  129. 4631 IF P1>255 THEN P1=255
  130. 4632 GOTO 4000
  131. 4640 INPUT "Q1 (0-15)";Q1
  132. 4641 IF Q1>15 THEN Q1=15
  133. 4642 GOTO 4000
  134. 4650 INPUT "W1$(N,P,S,T) ";W1$
  135. 4651 IF M1=1 THEN PRINT "RING MOD SET NO CHANGE ALLOWED":GOTO 4500
  136. 4652 IF W1$="N" THEN W1=128:GOTO 4000
  137. 4654 IF W1$="P" THEN W1=64:GOTO 4000
  138. 4656 IF W1$="S" THEN W1=32:GOTO 4000
  139. 4657 IF W1$="A" THEN W1=0:GOTO 4000
  140. 4658 IF W1$="T" THEN W1=16:GOTO 4000
  141. 4659 GOTO 4650
  142. 4660 INPUT "A1 (0-15)";A1
  143. 4661 IF A1>15 THEN A1=15
  144. 4662 GOTO 4000
  145. 4670 INPUT "D1 (0-15)";D1
  146. 4671 IF D1>15 THEN D1=15
  147. 4672 GOTO 4000
  148. 4680 INPUT "S1 (0-15)";S1
  149. 4681 IF S1>15 THEN S1=15
  150. 4682 GOTO 4000
  151. 4690 INPUT "R1 (0-15)";R1
  152. 4691 IF R1>15 THEN R1=15
  153. 4692 GOTO 4000
  154. 4700 INPUT "SYNC  (0-1)";Y1
  155. 4710 IF Y1>1 THEN Y1=1
  156. 4720 GOTO 4000
  157. 4800 IF W1$<>"T" THEN PRINT "NO TRIANGLE WAVEFORM":GOTO 4500
  158. 4810 INPUT "M1  (0-1)";M1
  159. 4820 IF M1>1 THEN M1=1
  160. 4830 GOTO 4000
  161. 4895 GOSUB 17000
  162. 4900 GOTO 4000
  163. 4920 GOSUB 13000
  164. 4930 GOTO 4000
  165. 4998 RETURN
  166. 4999 REM
  167. 5000 REM **************** V 2 SET UP SUB
  168. 5010 PRINT"[147]":PRINT"   VOICE 2 SET UP"
  169. 5015 PRINT
  170. 5020 PRINT" 1,FREQ LO (0-255)   "L2
  171. 5025 PRINT" 2,FREQ HI (0-255)   "H2
  172. 5030 PRINT" 3,PW LO   (0-255)   "P2
  173. 5035 PRINT" 4,PW HI   (0-15)    "Q2"      D="INT((Q2*256+P2)/40.96)"%"
  174. 5040 PRINT" 5,WAVE (N,P,S,T,A)   "W2$
  175. 5045 PRINT" 6,ATTACK  (0-15)    "A2
  176. 5050 PRINT" 7,DECAY   (0-15)    "D2
  177. 5055 PRINT" 8,SUB     (0-15)    "S2
  178. 5060 PRINT" 9,RELEASE (0-15)    "R2
  179. 5065 PRINT" 10,SYNC 2 WITH 1,1<2  (0-1)    "Y2
  180. 5070 PRINT" 11,RING MOD 2 WITH 1  (0-1)    "M2
  181. 5102 PRINT
  182. 5109 PRINT" 12, TEST "
  183. 5110 PRINT" 13, PLAY VOICE 2"
  184. 5111 PRINT" 14, PLAY ALL VOICES "
  185. 5112 PRINT" 15, RETURN TO MAIN MENU"
  186. 5113 X1=2
  187. 5114 GOSUB 9000
  188. 5116 PRINT
  189. 5117 PRINT "    DURATION= "T2+R6" SECONDS"
  190. 5118 PRINT "            FREQ="(.0596*(256*H2+L2))
  191. 5120 GOSUB 18000:GOSUB 19000
  192. 5200 PRINT
  193. 5500 INPUT" NUMBER TO BE CHANGED";X
  194. 5505 IF X>15 THEN 5000
  195. 5506 IF X>8 THEN GOTO 5515
  196. 5510 ON X  GOTO 5610,5620,5630,5640,5650,5660,5670,5680
  197. 5515 X=X-8
  198. 5520 ON X GOTO 5690,5700,5800,5900,5895,5920,5998
  199. 5610 INPUT "L2 (0-255)";L2
  200. 5611 IF L2>255 THEN L2=255
  201. 5612 GOTO 5000
  202. 5620 INPUT "H2 (0-255)";H2
  203. 5621 IF H2>255 THEN H2=255
  204. 5622 GOTO 5000
  205. 5630 INPUT "P2 (0-255)";P2
  206. 5631 IF P2>255 THEN P2=255
  207. 5632 GOTO 5000
  208. 5640 INPUT "Q2 (0-15)";Q2
  209. 5641 IF Q2>15 THEN Q2=15
  210. 5642 GOTO 5000
  211. 5650 INPUT "W2$(N,P,S,T) ";W2$
  212. 5651 IF M2=1 THEN PRINT "RING MOD SET NO CHANGE ALLOWED":GOTO 5500
  213. 5652 IF W2$="N" THEN W2=128:GOTO 5000
  214. 5654 IF W2$="P" THEN W2=64:GOTO 5000
  215. 5656 IF W2$="S" THEN W2=32:GOTO 5000
  216. 5657 IF W2$="A" THEN W2=0:GOTO 5000
  217. 5658 IF W2$="T" THEN W2=16:GOTO 5000
  218. 5659 GOTO 5650
  219. 5660 INPUT "A2 (0-15)";A2
  220. 5661 IF A2>15 THEN A2=15
  221. 5662 GOTO 5000
  222. 5670 INPUT "D2 (0-15)";D2
  223. 5671 IF D2>15 THEN D2=15
  224. 5672 GOTO 5000
  225. 5680 INPUT "S2 (0-15)";S2
  226. 5681 IF S2>15 THEN S2=15
  227. 5682 GOTO 5000
  228. 5690 INPUT "R2 (0-15)";R2
  229. 5691 IF R2>15 THEN R2=15
  230. 5692 GOTO 5000
  231. 5700 INPUT "SYNC  (0-1)";Y2
  232. 5710 IF Y2>1 THEN Y2=1
  233. 5720 GOTO 5000
  234. 5800 IF W2$<>"T" THEN PRINT "NO TRIANGLE WAVEFORM":GOTO 5500
  235. 5810 INPUT "M2  (0-1)";M2
  236. 5820 IF M2>1 THEN M2=1
  237. 5830 GOTO 5000
  238. 5895 GOSUB 17000
  239. 5900 GOTO 5000
  240. 5920 GOSUB 13000
  241. 5930 GOTO 5000
  242. 5998 RETURN
  243. 5999 REM
  244. 6000 REM **************** V 3 SET UP SUB
  245. 6010 PRINT"[147]":PRINT"   VOICE 3 SET UP"
  246. 6015 PRINT
  247. 6020 PRINT" 1,FREQ LO (0-255)   "L3
  248. 6025 PRINT" 2,FREQ HI (0-255)   "H3
  249. 6030 PRINT" 3,PW LO   (0-255)   "P3
  250. 6035 PRINT" 4,PW HI   (0-15)    "Q3"      D="INT((Q3*256+P3)/40.96)"%"
  251. 6040 PRINT" 5,WAVE (N,P,S,T,A)   "W3$
  252. 6045 PRINT" 6,ATTACK  (0-15)    "A3
  253. 6050 PRINT" 7,DECAY   (0-15)    "D3
  254. 6055 PRINT" 8,SUB     (0-15)    "S3
  255. 6060 PRINT" 9,RELEASE (0-15)    "R3
  256. 6065 PRINT" 10,SYNC 3 WITH 2,2<3  (0-1)    "Y3
  257. 6070 PRINT" 11,RING MOD 3 WITH 2  (0-1)    "M3
  258. 6102 PRINT
  259. 6109 PRINT" 12, TEST "
  260. 6110 PRINT" 13, PLAY VOICE 3"
  261. 6111 PRINT" 14, PLAY ALL VOICES "
  262. 6112 PRINT" 15, RETURN TO MAIN MENU"
  263. 6113 X1=3
  264. 6114 GOSUB 9000
  265. 6116 PRINT
  266. 6117 PRINT "    DURATION= "T3+R7" SECONDS"
  267. 6118 PRINT "            FREQ="(.0596*(256*H3+L3))
  268. 6120 GOSUB 18000:GOSUB 19000
  269. 6200 PRINT
  270. 6500 INPUT" NUMBER TO BE CHANGED";X
  271. 6505 IF X>15 THEN 6000
  272. 6506 IF X>8 THEN GOTO 6515
  273. 6510 ON X  GOTO 6610,6620,6630,6640,6650,6660,6670,6680
  274. 6515 X=X-8
  275. 6520 ON X GOTO 6690,6700,6800,6900,6895,6920,6998
  276. 6610 INPUT "L3 (0-255)";L3
  277. 6611 IF L3>255 THEN L3=255
  278. 6612 GOTO 6000
  279. 6620 INPUT "H3 (0-255)";H3
  280. 6621 IF H3>255 THEN H3=255
  281. 6622 GOTO 6000
  282. 6630 INPUT "P3 (0-255)";P3
  283. 6631 IF P3>255 THEN P3=255
  284. 6632 GOTO 6000
  285. 6640 INPUT "Q3 (0-15)";Q3
  286. 6641 IF Q3>15 THEN Q3=15
  287. 6642 GOTO 6000
  288. 6650 INPUT "W3$(N,P,S,T) ";W3$
  289. 6651 IF M3=1 THEN PRINT "RING MOD SET NO CHANGE ALLOWED":GOTO 6500
  290. 6652 IF W3$="N" THEN W3=128:GOTO 6000
  291. 6654 IF W3$="P" THEN W3=64:GOTO 6000
  292. 6656 IF W3$="S" THEN W3=32:GOTO 6000
  293. 6657 IF W3$="A" THEN W3=0:GOTO 6000
  294. 6658 IF W3$="T" THEN W3=16:GOTO 6000
  295. 6659 GOTO 6650
  296. 6660 INPUT "A3 (0-15)";A3
  297. 6661 IF A3>15 THEN A3=15
  298. 6662 GOTO 6000
  299. 6670 INPUT "D3 (0-15)";D3
  300. 6671 IF D3>15 THEN D3=15
  301. 6672 GOTO 6000
  302. 6680 INPUT "S3 (0-15)";S3
  303. 6681 IF S3>15 THEN S3=15
  304. 6682 GOTO 6000
  305. 6690 INPUT "R3 (0-15)";R3
  306. 6691 IF R3>15 THEN R3=15
  307. 6692 GOTO 6000
  308. 6700 INPUT "SYNC  (0-1)";Y3
  309. 6710 IF Y3>1 THEN Y3=1
  310. 6720 GOTO 6000
  311. 6800 IF W3$<>"T" THEN PRINT "NO TRIANGLE WAVEFORM":GOTO 6500
  312. 6810 INPUT "M3  (0-1)";M3
  313. 6820 IF M3>1 THEN M3=1
  314. 6830 GOTO 6000
  315. 6895 GOSUB 17000
  316. 6900 GOTO 6000
  317. 6920 GOSUB 13000
  318. 6930 GOTO 6000
  319. 6998 RETURN
  320. 6999 REM
  321. 7000 REM ***************** FILTER SET UP
  322. 7010 PRINT "[147]":PRINT "   FILTER SET UP"
  323. 7020 PRINT
  324. 7030 PRINT " 1, FREQ LO (0-15)   " L4
  325. 7040 PRINT " 2, FREQ HI (0-255)  "H4"   FREQ="30+5.8*(H4*8+L4)
  326. 7050 PRINT " 3, RES (0-15)       "R4
  327. 7060 PRINT " 4, FILT V1(0-1)     "G1
  328. 7062 PRINT " 5, FILT V2(0-1)     "G2
  329. 7064 PRINT " 6, FILT V3(0-1)     "G3
  330. 7070 PRINT " 7, 3 OFF (0 OR 1)  [160]"S4
  331. 7080 PRINT " 8, HP,PB,LP (1,2,4) "B4
  332. 7090 PRINT " 9, VOL (0-15)       "V4
  333. 7095 PRINT
  334. 7100 PRINT " 10, TEST
  335. 7111 [153] " 11, PLAY FILTER "
  336. 7112 [153] " 12, RETURN TO MAIN MENU"
  337. 7113 [153]" "
  338. 7115 [141] 18000:[141] 19000
  339. 7300 [133] "ITEM TO CHANGE";X
  340. 7310 [145] X [137] 7410,7420,7430,7440,7445,7450,7455,7460,7470,7000,7500,7998
  341. 7410 [133] "LOW FREQ   (0-15)";L4
  342. 7411 [139] L4[177]15 [167] L4[178]15
  343. 7412 [137] 7000
  344. 7420 [133] "HI FREQ    (0-155)";H4
  345. 7421 [139] H4[177]255 [167] H4[178]255
  346. 7422 [137] 7000
  347. 7430 [133] "RES   (0-15)";R4
  348. 7431 [139] R4[177]15 [167] R4[178]15
  349. 7432 [137] 7000
  350. 7440 [133] "VOICE 1   (0-1)";G1
  351. 7441 [139] G1[177]1 [167] G1[178]1
  352. 7442 [137] 7000
  353. 7445 [133] "VOICE 2   (0-1)";G2
  354. 7446 [139] G2[177]1 [167] G2[178]1
  355. 7447 [137] 7000
  356. 7450 [133] "VOICE 3   (0-1)";G3
  357. 7451 [139] G3[177]1 [167] G3[178]1
  358. 7452 [137] 7000
  359. 7455 [133] "3 OFF    (0-1)";S4
  360. 7456 [139] S4[177]1 [167] S4[178]1
  361. 7457 [137] 7000
  362. 7460 [133] "FILT TYPE 1,2,4";B4
  363. 7461 [139] B4[178]3 [167] B4[178]0
  364. 7462 [139] B4[177]4 [167] B4[178]0
  365. 7463 [137] 7000
  366. 7470 [133] "VOL     (0-15)";V4
  367. 7471 [139] V4[177]15 [167] V4[178]15
  368. 7472 [137] 7000
  369. 7500 [141] 14000:[137] 7000
  370. 7998 [142]
  371. 7999 [143]
  372. 8000 [143] *************************NOTES
  373. 8010 [143] A1-A3 ATTACK INPUT
  374. 8011 [143] A5-A7 ATTACK TIME
  375. 8015 [143] B4 BANDPASS INPUT
  376. 8016 [143] C1-C2 ADS COUNT,REL COUNT
  377. 8017 [143] C3-C5 ADS COUNT
  378. 8018 [143] C6-C8 REL COUNT
  379. 8020 [143] D1-D3 DECAY INPUT
  380. 8021 [143] D5-D8 DECAY TIME
  381. 8030 [143] F1 FILTER ADDRESS
  382. 8037 [143] G1 FILTER 1 ON
  383. 8038 [143] G2 FILTER 2 ON
  384. 8039 [143] G3 FILTER 3 ON
  385. 8040 [143] G4 FILTER INPUT
  386. 8050 [143] H1-H4 HI FREQ INPUT
  387. 8051 [143] I TEMP VALUE
  388. 8055 [143] J TEMP VALUE
  389. 8057 [143] K CALBRATION FACTOR
  390. 8058 [143] K1+K2 KEY VALUE
  391. 8059 [143] L
  392. 8060 [143] L1-L4 LO FREQ INPUT
  393. 8070 [143] M1,M2,M3 RING MOD BIT
  394. 8075 [143] N
  395. 8076 [143] O
  396. 8080 [143] P1-P3 PULSE INPUT LO
  397. 8090 [143] Q1-Q3 PULSE INPUT HI
  398. 8099 [143] R1-R3 RELEASE INPUT
  399. 8100 [143] R4 RESONANCE INPUT
  400. 8101 [143] R5-R8 REL TIME
  401. 8109 [143] S1-S3 SUB INPUT
  402. 8110 [143] S4 FILTER SWITCH INPUT
  403. 8111 [143] S5-S8 SUB TIME
  404. 8114 [143] T=TEMP DURATION
  405. 8115 [143] T1-T3 DURATION IN SEC (ADS)
  406. 8119 [143] U READ DATA
  407. 8120 [143] V1-V3 VOICE START ADDRESSS
  408. 8121 [143] V4 VOLUME INPUT
  409. 8130 [143] W1-W3 WAVEFORM POKE VALUES
  410. 8140 [143] WI$-W3$ WAVEFORM INPUTS
  411. 8150 [143] X TEMP INPUT VARIABLE
  412. 8152 [143] X$ TEMP INPUT VALUE
  413. 8160 [143] X1 VOICE #
  414. 8170 [143] Y1,Y2,Y3 SYNC BIT
  415. 8180 [143] Z ARRAY VARABLE
  416. 9000 [143] ******************DURATION CMP
  417. 9002 [139] X1[178]1 [167] [141] 9030
  418. 9006 [139] X1[178]2 [167] [141] 9130
  419. 9010 [139] X1[178]3 [167] [141] 9230
  420. 9020 [137] 9700
  421. 9030 X5[178]A1:[141] 9500
  422. 9033 A5[178]T
  423. 9040 X5[178]D1:[141] 9500
  424. 9045 D5[178]3[172]T
  425. 9050 X5[178]S1:[141] 9500
  426. 9052 S5[178]3[172]T
  427. 9060 X5[178]R1:[141] 9500
  428. 9065 R5[178]3[172]T
  429. 9066 T1[178]A5[170]D5[170]S5
  430. 9070 C3[178]K[172]T1
  431. 9080 C6[178]K[172]R5
  432. 9090 [142]
  433. 9130 X5[178]A2:[141] 9500
  434. 9133 A6[178]T
  435. 9140 X5[178]D2:[141] 9500
  436. 9145 D6[178]3[172]T
  437. 9150 X5[178]S2:[141] 9500
  438. 9152 S6[178]3[172]T
  439. 9160 X5[178]R2:[141] 9500
  440. 9165 R6[178]3[172]T
  441. 9166 T2[178]A6[170]D6[170]S6
  442. 9170 C4[178]K[172]T2
  443. 9180 C7[178]K[172]R6
  444. 9190 [142]
  445. 9230 X5[178]A3:[141] 9500
  446. 9233 A7[178]T
  447. 9240 X5[178]D3:[141] 9500
  448. 9245 D7[178]3[172]T
  449. 9250 X5[178]S3:[141] 9500
  450. 9252 S7[178]3[172]T
  451. 9260 X5[178]R3:[141] 9500
  452. 9265 R7[178]3[172]T
  453. 9266 T3[178]A7[170]D7[170]S7
  454. 9270 C5[178]K[172]T3
  455. 9280 C8[178]K[172]R7
  456. 9290 [142]
  457. 9500 [139] X5[178]0 [167] T[178].002
  458. 9510 [139] X5[178]1 [167] T[178].008
  459. 9520 [139] X5[178]2 [167] T[178].016
  460. 9530 [139] X5[178]3 [167] T[178].024
  461. 9540 [139] X5[178]4 [167] T[178].038
  462. 9550 [139] X5[178]5 [167] T[178].056
  463. 9560 [139] X5[178]6 [167] T[178].068
  464. 9570 [139] X5[178]7 [167] T[178].080
  465. 9580 [139] X5[178]8 [167] T[178].1
  466. 9590 [139] X5[178]9 [167] T[178].250
  467. 9600 [139] X5[178]10 [167] T[178].5
  468. 9610 [139] X5[178]11 [167] T[178].8
  469. 9620 [139] X5[178]12 [167] T[178]1
  470. 9630 [139] X5[178]13 [167] T[178]3
  471. 9640 [139] X5[178]14 [167] T[178]5
  472. 9650 [139] X5[178]15 [167] T[178]8
  473. 9655 [141] 9700
  474. 9660 [142]
  475. 9700 [139] C3[177][178]C4 [175] C3[177][178]C5 [167] C1[178]C3
  476. 9710 [139] C4[177][178]C5 [175] C4[177][178]C6 [167] C1[178]C4
  477. 9720 [139] C5[177][178]C3 [175] C5[177][178]C4 [167] C1[178]C5
  478. 9750 [139] R5[177][178]R6 [175] R5[177][178]R7 [167] C2[178]C6
  479. 9760 [139] R6[177][178]R7 [175] R6[177][178]R5 [167] C2[178]C7
  480. 9770 [139] R7[177][178]R5 [175] R7[177][178]R6 [167] C2[178]C8
  481. 9780 [142]
  482. 10000 [143] ************* POKE ALL VOICES
  483. 10020 [151] V1,L1:[151] V2,L2:[151]V3,L3
  484. 10030 [151] V1[170]1,H1:[151] V2[170]1,H2:[151]V3[170]1,H3
  485. 10040 [151] V1[170]2,P1:[151] V2[170]2,P2:[151]V3[170]2,P3
  486. 10050 [151] V1[170]3,Q1:[151] V2[170]3,Q2:[151]V3[170]3,Q3
  487. 10060 [151] V1[170]4,W1:[151] V2[170]4,W2:[151]V3[170]4,W3
  488. 10070 [151] V1[170]5,(16[172]A1[170]D1)
  489. 10072 [151] V2[170]5,(16[172]A2[170]D2)
  490. 10074 [151] V3[170]5,(16[172]A3[170]D3)
  491. 10080 [151] V1[170]6,(16[172]S1[170]R1)
  492. 10082 [151] V2[170]6,(16[172]S2[170]R2)
  493. 10084 [151] V3[170]6,(16[172]S3[170]R3)
  494. 10110 [151] F1,L4
  495. 10120 [151] F1[170]1,H4
  496. 10125 G4[178]G1[170]2[172]G2[170]4[172]G3
  497. 10130 [151] F1[170]2,R4[172]16[170]G4
  498. 10140 [151] F1[170]3,S4[172]128[170]B4[172]16[170]V4
  499. 10990 [142]
  500. 10998 [143]
  501. 10999 [143]
  502. 11000 [143] ************* GET KEY
  503. 11100 [161] X$:[139] X$[178]"" [167] 11100
  504. 11110 [139] X$[178]"1" [167] K1[178]128:[137] 11990
  505. 11120 [139] X$[178]"2" [167] K1[178]256:[137] 11990
  506. 11130 [139] X$[178]"3" [167] K1[178]512:[137] 11990
  507. 11140 [139] X$[178]"4" [167] K1[178]1024:[137] 11990
  508. 11150 [139] X$[178]"5" [167] K1[178]2048:[137] 11990
  509. 11160 [139] X$[178]"6" [167] K1[178]4096:[137] 11990
  510. 11170 [139] X$[178]"7" [167] K1[178]8192:[137] 11990
  511. 11180 [139] X$[178]"8"[167] K1[178]16348:[137] 11990
  512. 11190 [139] X$[178]"9"[167] K1[178]32768:[137] 11990
  513. 11195 [139] X$[178]"0"[167] K1[178]65535:[137] 11990
  514. 11200 [139] X$[178]"U" [167] K1[178]K1[172]1.125:[139] K1[177]65535 [167] K1[178]65535
  515. 11201 [139] X$[178]"U" [167] [137] 11990
  516. 11210 [139] X$[178]"D" [167] K1[178]K1[172].875:[139] K1[179]1 [167] K1[178]1
  517. 11211 [139] X$[178]"D" [167] [137] 11990
  518. 11220 [139] X$[178]"Q" [167] [137] 11990
  519. 11230 [137] 11100
  520. 11990 [142]
  521. 12000 [143] ************ SOUND ALL VOICES
  522. 12100 [151] V1[170]4,W1[170]1[170]4[172]M1[170]2[172]Y1
  523. 12101 [151] V2[170]4,W2[170]1[170]4[172]M2[170]2[172]Y2
  524. 12102 [151] V3[170]4,W3[170]1[170]4[172]M3[170]2[172]Y3
  525. 12120 [129] X[178]1 [164] C1:[130]
  526. 12130 [151] V1[170]4,W1
  527. 12132 [151] V2[170]4,W2
  528. 12133 [151] V3[170]4,W3
  529. 12140 [129] X[178]1 [164] C2:[130]
  530. 12150 [151] V1[170]4,0
  531. 12152 [151] V2[170]4,0
  532. 12153 [151] V3[170]4,0
  533. 12160 [151] V1[170]5,0
  534. 12162 [151] V2[170]5,0
  535. 12163 [151] V3[170]5,0
  536. 12170 [151] V1[170]6,0
  537. 12172 [151] V2[170]6,0
  538. 12173 [151] V3[170]6,0
  539. 12180 [137] 12990
  540. 12990 [142]
  541. 12998 [143]
  542. 12999 [143]
  543. 13000 [143] ************ PLAY ALL VOICES
  544. 13090 [153] "PLAYING "X1
  545. 13091 [153] "Q TO QUIT"
  546. 13100 [141] 11000
  547. 13110 [139] X$[178]"Q" [167] 13990
  548. 13200 [139] X1[178]1 [167] 13300
  549. 13201 [139] X1[178]2 [167] 13400
  550. 13202 [139] X1[178]3 [167] 13500
  551. 13203 [137] 13990
  552. 13300 H1[178][181](K1[173]256)
  553. 13310 L1[178][181](K1[171]H1[172]256)
  554. 13320 [141] 10000
  555. 13330 [141] 12000
  556. 13340 [137] 13100
  557. 13400 H2[178][181](K1[173]256)
  558. 13410 L2[178][181](K1[171]H2[172]256)
  559. 13420 [141] 10000
  560. 13430 [141] 12000
  561. 13440 [137] 13100
  562. 13500 H3[178][181](K1[173]256)
  563. 13510 L3[178][181](K1[171]H3[172]256)
  564. 13520 [141] 10000
  565. 13530 [141] 12000
  566. 13540 [137] 13100
  567. 13990 [142]
  568. 14000 [143] ***************** PLAY FILTER
  569. 14090 [153] "PLAYING "X1
  570. 14091 [153] "Q TO QUIT"
  571. 14100 [141] 11000
  572. 14110 [139] X$[178]"Q" [167] 17990
  573. 14115 K2[178]K1
  574. 14120 K2[178]K2[173]32
  575. 14200 H4[178][181](K2[173]8)
  576. 14210 L4[178][181](K2[171]H4[172]8)
  577. 14220 [141] 18000:[141]19000
  578. 14230 [137] 14100
  579. 14990 [142]
  580. 14999 [143]
  581. 15000 [143] ************** RETREIVE POKES
  582. 15010 [153]"LOAD"
  583. 15012 [141] 20000
  584. 15014 [153] "       RETREVE POKES    "
  585. 15015 [153]
  586. 15020 [153] "VOICE 1"," ","VOICE 2"
  587. 15030 [153] V1,Z(1),V2,Z(8)
  588. 15040 [153] V1[170]1,Z(2),V2[170]1,Z(9)
  589. 15050 [153] V1[170]2,Z(3),V2[170]2,Z(10)
  590. 15060 [153] V1[170]3,Z(4),V2[170]3,Z(11)
  591. 15070 [153] V1[170]4,Z(5),V2[170]3,Z(12)
  592. 15080 [153] V1[170]5,Z(6),V2[170]5,Z(13)
  593. 15085 [153] V1[170]6,Z(7),V2[170]6,Z(14)
  594. 15090 [153]:[153]:[153]
  595. 15120 [153] "VOICE 3"," ","FILTER "
  596. 15130 [153] V3,Z(15),F1,Z(22)
  597. 15140 [153] V3[170]1,Z(16),F1[170]1,Z(23)
  598. 15150 [153] V3[170]2,Z(17),F1[170]2,Z(24)
  599. 15160 [153] V3[170]3,Z(18),F1[170]3,Z(25)
  600. 15170 [153] V3[170]4,Z(19)
  601. 15171 [153] V3[170]5,Z(20)
  602. 15172 [153] V1[170]6,Z(21)
  603. 15175 [153] " "," ","COUNT 1="C1
  604. 15176 [153] " "," ","COUNT 2="C2
  605. 15180 [153]
  606. 15190 [153] "     ANY KEY TO RETURN"
  607. 15900 [161] X$:[139] X$[178]""[167] 15900
  608. 15990 [142]
  609. 16000 [143] ***************PRINT PROGRAM
  610. 16005 [153] "LOAD";
  611. 16006 [141] 20000
  612. 16010 [153]"        RESTORE :FOR X=1 TO 25 :READ U:POKE 54271+X,U:NEXT X"
  613. 16300 [153]"        DATA"Z(1)","Z(2)","Z(3)","Z(4)","Z(5)"
  614. 16310 PRINT"        DATA"Z(6)","Z(7)","Z(8)","Z(9)","Z(10)"
  615. 16320 [153]"        DATA"Z(11)","Z(12)","Z(13)","Z(14)","Z(15)"
  616. 16330 PRINT"        DATA"Z(16)","Z(17)","Z(18)","Z(19)","Z(20)
  617. 16340 PRINT"        DATA"Z(21)","Z(22)","Z(23)","Z(24)","Z(25)
  618. 16399 IF Z(5)=0 THEN 16409
  619. 16400 PRINT"        POKE 54276," Z(5)+1
  620. 16409 IF Z(12)=0 THEN 16419
  621. 16410 PRINT"        POKE 54283," Z(12)+1
  622. 16419 IF Z(19)=0 THEN 16430
  623. 16420 PRINT"        POKE 54290," Z(19)+1
  624. 16430 PRINT"        FOR I=0 TO "C1": NEXT I"
  625. 16495 IF Z(5)=0 THEN 16505
  626. 16500 PRINT"        POKE 54276," Z(5)
  627. 16505 IF Z(12)=0 THEN 16515
  628. 16510 PRINT"        POKE 54283," Z(12)
  629. 16515 IF Z(19)=0 THEN 16530
  630. 16520 PRINT"        POKE 54290," Z(19)
  631. 16530 PRINT"        FOR I=0 TO "C2": NEXT I"
  632. 16600 PRINT"        FORX=0TO23:POKE54272+X,0:NEXT X"
  633. 16880 PRINT
  634. 16890 PRINT "ANY KEY TO RETURN (E TO ERASE)"
  635. 16900 GET X$
  636. 16910 IF X$="E" THEN NEW
  637. 16920 IF X$="" THEN 16900
  638. 16990 RETURN
  639. 17000 REM ****************** PLAY VOICE
  640. 17090 PRINT "PLAYING "X1
  641. 17091 PRINT "Q TO QUIT"
  642. 17100 GOSUB 11000
  643. 17110 IF X$="Q" THEN 17990
  644. 17200 IF X1=1 THEN 17300
  645. 17201 IF X1=2 THEN 17400
  646. 17202 IF X1=3 THEN 17500
  647. 17203 GOTO 17990
  648. 17300 H1=INT(K1/256)
  649. 17310 L1=INT(K1-H1*256)
  650. 17320 GOSUB 18000
  651. 17330 GOSUB 19000
  652. 17340 GOTO 17100
  653. 17400 H2=INT(K1/256)
  654. 17410 L2=INT(K1-H2*256)
  655. 17420 GOSUB 18000
  656. 17430 GOSUB 19000
  657. 17440 GOTO 17100
  658. 17500 H3=INT(K1/256)
  659. 17510 L3=INT(K1-H3*256)
  660. 17520 GOSUB 18000
  661. 17530 GOSUB 19000
  662. 17540 GOTO 17100
  663. 17990 RETURN
  664. 18000 REM ************* POKE 1 VOICE
  665. 18010 POKE F1,L4
  666. 18020 POKE F1+1,H4
  667. 18025 G4=G1+2*G2+4*G3
  668. 18030 POKE F1+2,R4*16+G4
  669. 18040 POKE F1+3,S4*128+B4*16+V4
  670. 18090 IF X1=1 THEN 18100
  671. 18091 IF X1=2 THEN 18200
  672. 18092 IF X1=3 THEN 18300
  673. 18093 GOTO 18990
  674. 18100 REM #1
  675. 18120 POKE V1,L1
  676. 18130 POKE V1+1,H1
  677. 18140 POKE V1+2,L1
  678. 18150 POKE V1+3,Q1
  679. 18160 POKE V1+4,W1
  680. 18170 POKE V1+5,(16*A1+D1)
  681. 18180 POKE V1+6,(16*S1+R1)
  682. 18199 GOTO 18990
  683. 18200 REM #2
  684. 18220 POKE V2,L2
  685. 18230 POKE V2+1,H2
  686. 18240 POKE V2+2,L2
  687. 18250 POKE V2+3,Q2
  688. 18260 POKE V2+4,W2
  689. 18270 POKE V2+5,(16*A2+D2)
  690. 18280 POKE V2+6,(16*S2+R2)
  691. 18299 GOTO 18990
  692. 18300 REM #3
  693. 18320 POKE V3,L3
  694. 18330 POKE V3+1,H3
  695. 18340 POKE V3+2,L3
  696. 18350 POKE V3+3,Q3
  697. 18360 POKE V3+4,W3
  698. 18370 POKE V3+5,(16*A3+D3)
  699. 18380 POKE V3+6,(16*S3+R3)
  700. 18399 GOTO 18990
  701. 18990 REM
  702. 18991 RETURN
  703. 18998 REM
  704. 18999 REM
  705. 19000 REM ********* MAKE 1 VOICE SOUND
  706. 19010 IF X1=1 THEN 19100
  707. 19011 IF X1=2 THEN 19200
  708. 19012 IF X1=3 THEN 19300
  709. 19013 GOTO 19990
  710. 19100 POKE V1+4,W1+1
  711. 19120 FOR X=1 TO C3:NEXT
  712. 19130 POKE V1+4,W1
  713. 19140 FOR X=1 TO C6:NEXT
  714. 19150 POKE V1+4,0
  715. 19160 POKE V1+5,0
  716. 19170 POKE V1+6,0
  717. 19180 GOTO 19990
  718. 19200 POKE V2+4,W2+1
  719. 19220 FOR X=1 TO C4:NEXT
  720. 19230 POKE V2+4,W2
  721. 19240 FOR X=1 TO C7:NEXT
  722. 19250 POKE V2+4,0
  723. 19260 POKE V2+5,0
  724. 19270 POKE V2+6,0
  725. 19280 GOTO 19990
  726. 19300 POKE V3+4,W3+1
  727. 19320 FOR X=1 TO C5:NEXT
  728. 19330 POKE V3+4,W3
  729. 19340 FOR X=1 TO C8:NEXT
  730. 19350 POKE V3+4,0
  731. 19360 POKE V3+5,0
  732. 19370 POKE V3+6,0
  733. 19380 GOTO 19990
  734. 19990 RETURN
  735. 19998 REM
  736. 19999 REM
  737. 20000 REM************* MAKE ARRAY
  738. 20100 Z(1)=L1:Z(2)=H1:Z(3)=P1:Z(4)=Q1
  739. 20110 Z(5)=W1+M1*4+Y1*2:Z(6)=A1*16+D1
  740. 20120 Z(7)=S1*16+R1
  741. 20200 Z(8)=L2:Z(9)=H2:Z(10)=P2:Z(11)=Q2
  742. 20210 Z(12)=W2+M2*4+Y2*2:Z(13)=A2*16+D2
  743. 20220 Z(14)=S2*16+R2
  744. 20300 Z(15)=L3:Z(16)=H3:Z(17)=P3:Z(18)=Q3
  745. 20310 Z(19)=W3+M3*4+Y3*2:Z(20)=A3*16+D3
  746. 20320 Z(21)=S3*16+R3
  747. 20400 Z(22)=L4:Z(23)=H4
  748. 20410 Z(24)=R4*16+G3*4+G2*2+G1
  749. 20420 Z(25)=B4*16+V4
  750. 20990 RETURN
  751. 20991 REM
  752. 20992 REM
  753. 20993 REM
  754. 21000 REM ************** MAKE SOUND
  755. 21010 GOSUB 20000
  756. 21100 FOR I=1 TO 25
  757. 21110 POKE 54271+I,Z(I)
  758. 21120 NEXT I
  759. 21195 IF Z(5)=0 THEN 21209
  760. 21200 POKE 54276,Z(5)+1
  761. 21209 IF Z(12)=0 THEN 21219
  762. 21210 POKE 54283,Z(12)+1
  763. 21219 IF Z(19)=0 THEN 21300
  764. 21220 POKE 54290,Z(19)+1
  765. 21300 FOR X=0 TO C1:NEXTX
  766. 21400 POKE 54276,Z(5)
  767. 21410 POKE 54283,Z(12)
  768. 21420 POKE 54290,Z(19)
  769. 21500 FOR X=0 TO C2:NEXT X
  770. 21600 FORX=0TO23:POKE54272+X,0:NEXT X
  771. 21990 RETURN
  772. 21991 REM
  773. 21992 REM
  774. 21993 REM
  775. 22000 REM INSTRUCTIONS
  776. 22010 PRINT"[147]"
  777. 22020 PRINT"                      "
  778. 22030 PRINT"      INSTRUCTIONS    "
  779. 22040 PRINT"                      "
  780. 22050 PRINT"1)  NOTES:            "
  781. 22060 PRINT"    A THROUGH KNOWLEDGE"
  782. 22070 PRINT" OF SID THEORY IS REQUIRED"
  783. 22080 PRINT" TO USE THIS PROGRAM  "
  784. 22150 PRINT"2)  MAIN MENU:        "
  785. 22160 PRINT" PICK THE OPERATION "
  786. 22170 PRINT" DESIRED AND ENTER THAT   "
  787. 22180 PRINT" NUMBER               "
  788. 22200 PRINT"3)  THE WORD PLAY:    "
  789. 22210 PRINT" AN ENTRY THAT USES "
  790. 22220 PRINT" THIS WORD WILL PLAY NOTES"
  791. 22230 PRINT" WHEN THE NUMBER KEYS 1-8"
  792. 22240 PRINT" ARE PRESSED.  EACH KEY"
  793. 22250 PRINT" WILL PLAY A DIFFERENT "
  794. 22260 PRINT" OCTAVE.  THE NOTES MAY  "
  795. 22270 PRINT" BE PLAYED BY PRESSING"
  796. 22280 PRINT" U (UP) OR D[160](DOWN)    "
  797. 22281 PRINT"                       "
  798. 22285 PRINT"              PRESS N FOR NEXT PAGE"
  799. 22286 GET X$:IF X$<>"N" THEN 22286
  800. 22290 PRINT"                          "
  801. 22310 PRINT"[147]"
  802. 22315 PRINT"                      "
  803. 22320 PRINT"4)  VOICE MENUS:     "
  804. 22325 PRINT"    ENTER THE DESIRED "
  805. 22330 PRINT"    VALUES TO PLAY ANY"
  806. 22335 PRINT"    VOICE              "
  807. 22340 PRINT"5)  FILTER MENU:         "
  808. 22345 PRINT" ENTER THE VALUES DESIRED "
  809. 22350 PRINT"6)  WHILE IN ANY VOICE"
  810. 22355 PRINT" IT IS POSSIBLE TO PLAY"
  811. 22360 PRINT" DIFFERENT NOTES       "
  812. 22370 PRINT"7)  WHILE IN THE FILTER   "
  813. 22380 PRINT" MODE IT IS POSSIBLE TO"
  814. 22385 PRINT" PLAY DIFFERENT VALUES"
  815. 22395 PRINT" OF FILTER NOTES      "
  816. 22397 PRINT"                       "
  817. 22398 PRINT"              PRESS N FOR NEXT PAGE"
  818. 22399 GET X$:IF X$<>"N" THEN 22399
  819. 22410 PRINT"[147]"
  820. 22415 PRINT"                      "
  821. 22420 PRINT"8)  THE MAIN MENU WILL"
  822. 22425 PRINT" ALLOW YOU TO PRINT THE"
  823. 22430 PRINT" SOUND PROGRAM THAT    "
  824. 22431 PRINT" YOU HAVE CREATED BY   "
  825. 22435 PRINT" ERASEING THIS PROGRAM.  "
  826. 22440 PRINT" IF YOU DO THIS YOU MAY"
  827. 22445 PRINT" SAVE THE SOUND PROGRAM BY"
  828. 22450 PRINT" USING THE CURSER UP KEYS"
  829. 22455 PRINT" TO RENUMBER THE DATA AND"
  830. 22460 PRINT" POKE STATEMENTS.      "
  831. 22470 PRINT"                          "
  832. 22480 PRINT"                       "
  833. 22485 PRINT"                      "
  834. 22495 PRINT"                      "
  835. 22497 PRINT"                       "
  836. 22970 PRINT"              PRESS Q TO QUIT      "
  837. 22980 GET X$:IF X$<>"Q" THEN 22980
  838. 22990 RETURN
  839. 22991 REM
  840. 22992 REM
  841. 22993 REM
  842. 22994 REM
  843. 55530 PRINT" WHEN THE NUMBER KEYS "
  844.